<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Demo</title>
    <link rel="icon" href="./layui/public/favicon.ico">
    <!-- 请勿在项目正式环境中引用该 layui.css 地址 -->
    <link href="//unpkg.com/layui@2.9.14/dist/css/layui.css" rel="stylesheet">
</head>
<body>
<style>
    .demo-login-container {
        width: 320px;
        margin: 21px auto 0;
    }

    .demo-login-other .layui-icon {
        position: relative;
        display: inline-block;
        margin: 0 2px;
        top: 2px;
        font-size: 26px;
    }
</style>
<form class="layui-form">
    <div class="demo-login-container">
        <div class="layui-form-item">
            <div class="layui-input-wrap">
                <div class="layui-input-prefix">
                    <i class="layui-icon layui-icon-username"></i>
                </div>
                <input id="login-username" type="text" name="username" value="" lay-verify="required"
                       placeholder="用户名"
                       lay-reqtext="请填写用户名" autocomplete="off" class="layui-input" lay-affix="clear">
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-wrap">
                <div class="layui-input-prefix">
                    <i class="layui-icon layui-icon-password"></i>
                </div>
                <input id="login-password" type="password" name="password" value="" lay-verify="required"
                       placeholder="密   码"
                       lay-reqtext="请填写密码" autocomplete="off" class="layui-input" lay-affix="eye">
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-row">
                <div class="layui-col-xs7">
                    <div class="layui-input-wrap">
                        <div class="layui-input-prefix">
                            <i class="layui-icon layui-icon-vercode"></i>
                        </div>
                        <input id="login-captcha" type="text" name="captcha" value="" lay-verify="required"
                               placeholder="验证码"
                               lay-reqtext="请填写验证码" autocomplete="off" class="layui-input" lay-affix="clear">
                    </div>
                </div>
                <div class="layui-col-xs5">
                    <div style="margin-left: 10px;">
                        <img id="captcha-imag" src=""
                             lay-on="ref-captcha-imag">
                    </div>
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <input type="checkbox" checked="checked" name="remember" lay-skin="primary" title="记住密码">
            <a href="#forget" style="float: right; margin-top: 7px;">忘记密码？</a>
        </div>
        <div class="layui-form-item">
            <button class="layui-btn layui-btn-fluid" lay-on="user-login" lay-submit lay-filter="demo-login">登录
            </button>
        </div>
        <div class="layui-form-item demo-login-other">
            <label>社交账号登录</label>
            <span style="padding: 0 21px 0 6px;">
        <a href="javascript:;"><i class="layui-icon layui-icon-login-qq" style="color: #3492ed;"></i></a>
        <a href="javascript:;"><i class="layui-icon layui-icon-login-wechat" style="color: #4daf29;"></i></a>
        <a href="javascript:;"><i class="layui-icon layui-icon-login-weibo" style="color: #cf1900;"></i></a>
      </span>
            或 <a lay-on="doRegister" href="#reg">注册帐号</a>
        </div>
    </div>
</form>

<script src="/layui/layui.js"></script>
<script src="/layui/userKey.js"></script>
<script>
    layui.use(["util"], function () {
        var form = layui.form;
        var layer = layui.layer;
        var util = layui.util;
        var jQuery = layui.$;

        function createCaptcha() {
            jQuery.ajax({
                url: "/api/ai-cloud/v1/captcha/create",
                type: "POST",
                contentType: "application/json",
                success: function (result) {
                    if (result != null && result.data != null) {
                        jQuery('#captcha-imag').attr('src', result.data.imageUrl);
                    } else {
                        layer.msg("请求验证码错误！");
                    }
                }
            })
        }

        layer.ready(function () {
            createCaptcha();
        })
        // 提交事件
        form.on('submit(demo-login)', function (data) {
            var field = data.field; // 获取表单字段值
            // 显示填写结果，仅作演示用
            layer.alert(JSON.stringify(field), {
                title: '当前填写的字段值'
            });
            // 此处可执行 Ajax 等操作
            // …
            return false; // 阻止默认 form 跳转
        });
        util.on('lay-on', {
            'ref-captcha-imag': function () {
                createCaptcha();
            },
            'user-login': function (result) {
                jQuery.ajax({
                    url: "/api/ai-cloud/v1/user/login",
                    type: "POST",
                    contentType: "application/json",
                    data: JSON.stringify({
                        "username": jQuery('#login-username').val(),
                        "password": jQuery('#login-password').val(),
                        "captcha": jQuery('#login-captcha').val()
                    }),
                    success: function (result) {
                        if (result != null && result.data != null) {
                            jQuery('#login-username').val('')
                            jQuery('#login-password').val('')
                            jQuery('#login-captcha').val('')

                            // 使用 layui.data 存储 JWT token
                            layui.data(login_user_info_key, {
                                key: authorization,
                                value: result.data.token
                            });
                            layui.data(login_user_info_key, {
                                key: username_key,
                                value: result.data.username
                            });
                            window.parent.location.href = window.parent.location.href;
                        } else {
                            layer.msg(result.message)
                            jQuery('#login-password').val('')
                            jQuery('#login-captcha').val('')
                        }
                    }
                })
            },
            'doRegister': function () {
                location.href = '/register.html';
            }
        })
    });
</script>

</body>
</html>